#ifndef CSINGLETON_H
#define CSINGLETON_H

namespace patternlib
{
template <typename T>
class CSingleton: private T
{
  CSingleton(const CSingleton &obj);
  CSingleton& operator=(const CSingleton &obj);

  CSingleton()
  {
  }

  ~CSingleton()
  {
  }
public:

  static T& getInstance()
  {
    static CSingleton obj;
    return obj;
  }
};
}
#endif
